package edu.algo3.algoThief.domain;

import java.util.ArrayList;
import java.util.List;

import edu.algo3.algoThief.dao.Repositorio;

public class Ciudad {

    // variables de instancia

    private String nombre;

    private String descripcion;

    private String pais;

    private double latitud;

    private double longitud;

    private List<Edificio> edificios;

    private Boolean visitada;

    // Constructor

    public Ciudad(String paisNombre) {

        nombre = Repositorio.getCiudad(paisNombre);
        descripcion = Repositorio.getDescripcion(paisNombre);
        pais = paisNombre;
        latitud = Repositorio.getLatitud(paisNombre);
        longitud = Repositorio.getLongitud(paisNombre);
        Edificio aeropuerto = new Aeropuerto();
        Edificio banco = new Banco();
        Edificio biblioteca = new Biblioteca();
        this.edificios = new ArrayList<Edificio>();
        this.edificios.add(aeropuerto);
        this.edificios.add(banco);
        this.edificios.add(biblioteca);
        visitada = Boolean.FALSE;
    }
    
    public Edificio entrarAEdificio(String tipoDeEdificio){
        Edificio edificioVisitado = null;
        for (Edificio edificio : this.edificios) {
            if (tipoDeEdificio.equals(edificio.getDescripcion())) {
                edificioVisitado = edificio;
            }
        }
        return edificioVisitado;
    }

    // metodos

    public String getNombre() {

        return nombre;
    }

    public void setNombre(String nombre) {

        this.nombre = nombre;
    }

    public String getDescripcion() {

        return descripcion;
    }

    public void setDescripcion(String descripcion) {

        this.descripcion = descripcion;
    }

    public String getPais() {

        return pais;
    }

    public void setPais(String pais) {

    }

    public double getLatitud() {

        return latitud;
    }

    public void setLatitud(Integer latitud) {

        this.latitud = latitud;
    }

    public double getLongitud() {

        return longitud;
    }

    public void setLongitud(Integer longitud) {

        this.longitud = longitud;
    }

    public List<Edificio> getEdificios() {

        return edificios;
    }

    public void setEdificios(List<Edificio> edificios) {

        this.edificios = edificios;
    }

    public Boolean estaVisitada() // inutil si se genera toda la ruta de escape al empezamiento del
                                  // juego  --> UTIL PARA GENERAR DESTINOS (VER CLASE CASO METODO getSiguienteCiudadDeEscape)
    {

        return visitada;
    }

    public void setVisitada(Boolean visitada) // inutil si se genera toda la ruta de escape al
                                              // empezamiento del juego
    {

        this.visitada = visitada;
    }

    public void agregarunEdificio(Edificio edificio) {

        this.edificios.add(edificio);
    }

}
